package jpb;

/**
 * An interface representing entry point to the java application.
 *
 * <p>
 * A default entry point to a Java application may be:
 * <ul>
 * <li>a class implementing public static method named 'main',
 * <li>a Java archive (JAR) containing such a class, whose name is referred to
 * in a 'manifest.mf' file, in the META-INF directory of the JAR.
 * </ul>
 *
 * <p>
 * The above default entry points are defined in {@link DefaultEntryPoint}.
 * For one Java application startup only one of those options may be used. The
 * {@link JavaProcessBuilder} accepts instances of this class specifying the
 * desired entry point along with its specific property. For a class entry it
 * will be full class name, for JAR entry point in turn a {@link java.io.File} object
 * representing the JAR on the physical drive of the underlying system.
 *
 * <p>
 * JVM implementations may specify custom entry points that they are able to handle,
 * however their {@link jpb.Jvm#entryPointArg()} are responsible for handling those entry points
 * appropriately.
 *
 * @see jpb.JvmArg
 * @see jpb.DefaultEntryPoint
 * @see jpb.Jvm#entryPointArg()
 * @see JavaProcessBuilder#entryPoint() 
 * @author Dariusz Kordonski
 */
public interface EntryPoint
{
}
